package nodos;

import javax.swing.tree.DefaultMutableTreeNode;

import mundo.SimboloLexico;

public class NodoOperandoLogico extends Nodo {

	private Nodo expresionBooleana;
	private Nodo expresionRelacional;
	private SimboloLexico operadorLogico;

	public NodoOperandoLogico(Nodo expresionBooleana, Nodo expresionRelacional,
			SimboloLexico operadorLogico) {
		this.expresionBooleana = expresionBooleana;
		this.expresionRelacional = expresionRelacional;
		this.operadorLogico = operadorLogico;
	}



	@Override
	public DefaultMutableTreeNode getSubArbolVisual() {
		DefaultMutableTreeNode raiz= new DefaultMutableTreeNode("Operando Logico");
		if (expresionBooleana!=null) {
			raiz.add(expresionBooleana.getSubArbolVisual());
		}
		if (operadorLogico!=null) {
			raiz.add(new DefaultMutableTreeNode(operadorLogico.getLexema()));
		}
		if (expresionRelacional!=null) {
			raiz.add(expresionRelacional.getSubArbolVisual());
		}
		return raiz;
	}

	@Override
	public String traducir(int profundidad) {
		String codJava="";
		if(expresionBooleana!=null)
			codJava="("+expresionBooleana.traducir(profundidad)+")";
		if(expresionRelacional!=null)
			codJava="("+expresionRelacional.traducir(profundidad)+")";
		if(operadorLogico!=null)
			codJava=operadorLogico.traducirSimbolo();
		return codJava;
	}

}
